namespace SPI.AgentServer.Services.AI;

public interface IPromptManager
{
    string GetSystemPrompt();
    string BuildQueryPrompt(string userQuery, List<ToolDefinition> availableTools, string? context = null);
    string BuildErrorCorrectionPrompt(string originalQuery, string error, string? previousAttempt = null);
    List<ToolDefinition> GetAvailableTools();
    void SetSchemaDescription(string description);
    string? GetCachedSchemaDescription();
}

public class ToolDefinition
{
    public string Name { get; set; } = string.Empty;
    public string Description { get; set; } = string.Empty;
    public Dictionary<string, ParameterDefinition> Parameters { get; set; } = new();
}

public class ParameterDefinition
{
    public string Type { get; set; } = string.Empty;
    public string Description { get; set; } = string.Empty;
    public bool Required { get; set; }
    public object? DefaultValue { get; set; }
}
